<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Date_func {

    function date_konversion_format($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke DD/MM/YYYY
        $obj_date = date_create_from_format('Y-m-d H:i:s', $in_date);
        return date_format($obj_date, 'd/m/Y');
    }

    function date_konversion_format2($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke 01 January 2011
        $obj_date = date_create_from_format('Y-m-d H:i:s', $in_date);
        return date_format($obj_date, 'd F Y');
    }

    function date_konversion_format2v2($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke 01 January 2011
        $obj_date = date_create_from_format('Y-m-d H:i:s', $in_date);
        return date_format($obj_date, 'd M Y');
    }
    
    function date_konversion_format3($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke 01 January 2011
        $obj_date = date_create_from_format('Y-m-d', $in_date);
        return date_format($obj_date, 'm/d/Y');
    }
    
    function date_konversion_format3v2($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke 01 January 2011
        $obj_date = date_create_from_format('Y-m-d', $in_date);
        return date_format($obj_date, 'd/m/Y');
    }
    
    function date_konversion_format4($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke 01 January 2011
        $obj_date = date_create_from_format('Y-m-d', $in_date);
        $retval=array();
        $retval['date']= date_format($obj_date, 'd');
        $retval['month']= $this->month_localize(date_format($obj_date, 'm'));
        $retval['year']= date_format($obj_date, 'Y');
        
        return $retval['date'].' '.$retval['month'].' '.$retval['year'];
    }
    
    function date_konversion_format4v2($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke 01 January 2011
        $obj_date = date_create_from_format('Y-m-d H.i', $in_date);
        $retval=array();
        $retval['date']= date_format($obj_date, 'd');
        $retval['month']= $this->month_localize(date_format($obj_date, 'm'));
        $retval['year']= date_format($obj_date, 'Y');
        $retval['time']= date_format($obj_date, 'H.i');
        return $retval['date'].' '.$retval['month'].' '.$retval['year'].' '.$retval['time'];
    }
    
    function date_konversion_format5($in_date) {
        // format masukan date YYYY-MM-DD HH:MM:SS ke d/m/y dan nama hari
        $obj_date = date_create_from_format('Y-m-d', $in_date);
        $retval=array();
        $retval['date']= date_format($obj_date, 'd/m/Y');
        $retval['day']=$this->day_localize(date_format($obj_date, 'l'));
        
        return $retval;
    }

    function extract_date($in_date) {
        // format masukan datetime, menghasilka bagian datenya
        $obj_date = date_create_from_format('Y-m-d H:i:s', $in_date);
        return date_format($obj_date, 'd.m.Y');
    }

    function extract_time($in_date) {
        // format masukan datetime, menghasilka bagian datenya
        $obj_date = date_create_from_format('Y-m-d H:i:s', $in_date);
        return date_format($obj_date, 'H.i');
    }

    function day_localize($name_day) {
        switch ($name_day) {
            case 'Sunday':
                return 'Minggu';
            case 'Monday':
                return 'Senin';
            case 'Tuesday':
                return 'Selasa';
            case 'Wednesday':
                return 'Rabu';
            case 'Thursday':
                return 'Kamis';
            case 'Friday':
                return 'Jumat';
            case 'Saturday':
                return 'Sabtu';
        }
    }

    function month_localize($num_day) {
        switch ($num_day) {
            case 1:
                return 'Januari';
            case 2:
                return 'Februari';
            case 3:
                return 'Maret';
            case 4:
                return 'April';
            case 5:
                return 'Mei';
            case 6:
                return 'Juni';
            case 7:
                return 'Juli';
            case 8:
                return 'Agustus';
            case 9:
                return 'September';
            case 10:
                return 'Oktober';
            case 11:
                return 'Noember';
            case 12:
                return 'Desember';
        }
    }

}